Part Number Hot Search : 
TIP112F TRONIC MB40C328 RB715WTL M5819 167BZI 2SB170 120N6
Product Description
Full Text Search
 

To Download W3100A Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
   
 
        i2chip W3100A www.i2chip.com technical datasheet v1.1 description features block diagram  description the i2chip W3100A is an lsi of hardware protocol stack that provides an easy, low-cost solution for high-speed internet connectivity for digital devices by allowing simple installation of tcp/ip stack in the hardware. the W3100A offers system designers a quick, easy way to add ethernet networking functionality to any product. implementing this lsi into a syste m can completely offload internet connectivity and p rocessing standard protocols from the system, thereby significantly reducing the software development cost. the W3100A contains tcp/ip protocol stacks such as tcp, udp, ip, arp and icmp protocols, as well as ethernet protocols such as data link control and mac protocol. the W3100A offers a socket api (application programming interface) that is similar to the windows socket api. the chip offers intel and motorol a mcu (8051, i386, 6811 tested) bus interface and i 2 c for upper-layer and supports standard mii interface fo r under-layer ethernet. the W3100A can be applied to handheld devices including internet phones, voip soc chips, internet mp3 players, handheld medical devices, lan cards for web servers, cellular phones and many other non- portable electronic devices such as large consume r electronic products.  features   hardware internet protocols included: tcp, ip ver.4, udp, icmp, arp  hardware ethernet protocols included: dlc, mac  supports 4 independent connections simultaneously  internal icmp responds to ping commands  protocol processing speed: full-duplex 4~5 mbps  intel/motorola mcu bus interface  i 2 c interface  standard mii interface for under-layer physical chip  socket api support for easy application programming  supports full-duplex mode  internal 16kbytes dual-port sram for data buffer  0.35 m cmos technology  wide operating voltage: 3.3v internal operation, 5v tolerant 3.3v ios  small 64 pin lqfp package block diagram tcp udp ip dlc ma c arp icmp mii interface dpram mcu interface protocol engine rx_cl k rxdv /crs rxd( 3:0) tx e col txd(3:0) reset /cs /wr /rd a ddr( 14:0) da ta ( 7:0) /int /serial tx_clk /fdplx /link ex t_ cl k scl sda clo ck mo d e1 mo d e2 mo d e0 tcp udp ip dlc ma c arp icmp mii interface dpram mcu interface protocol engine rx_cl k rxdv /crs rxd( 3:0) tx e col txd(3:0) reset /cs /wr /rd a ddr( 14:0) da ta ( 7:0) /int /serial tx_clk /fdplx /link ex t_ cl k scl sda clo ck mo d e1 mo d e2 mo d e0
 
 
        table of contents    
    
           
    
    
 
    
 
    

     

 !  " 
 #    $
 %  &
    
   
  '  $ 
(
  )## '  *
  '  +
    $,)% & ' ' %,)% &      
 $  
 #   
 " -
. %+$/% & &% &  0%12#34 #  
$/% &   $ &
$/% &   $  $/% &   ' ",$
 !   *  '#   & &0,567'%8(4 '#  9:
  & &09;*<,67'#%8(4 '  = > & &0,567'%8(4 '  $   &0,567'%8(4 '? ' %&$ &  &
$
0%$$4 '@   
       &:   9
 
    
 
 
        pin assignment  figure 1: 64-pin lqfp pin assignments /cs /rd /wr /int sda scl vcc gnd mode0 tx_clk gnd txe txd[3] txd[2] txd[1] txd[0] 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 reset 1 48 col vcc 2 47 mode1 gnd 3 46 rx_clk clock 4 45 gnd a[14]/ da[6] 5 44 rxdv/crs a[13]/ da[5] 6 43 rxd[3] a[12]/ da[4] 7 42 rxd[2] a[11]/ da[3] 8 41 rxd[1] a[10]/ da[2] 9 40 rxd[0] a[9]/ da[1] 10 39 vcc a[8]/ da[0] 11 38 vcc vcc 12 37 gnd gnd 13 36 /link a[7] 14 35 /serial a[6] 15 34 /fdplx a[5] 16 i2chip W3100A 64-lqfp 33 ext_clk 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 a[4] a[3] a[2] a[1] a[0] vcc gnd d[7] d[6] d[5] d[4] mode2 d[3] d[2] d[1] d[0]  
 
 
        signal description table 1: W3100A mii signal description pin# signal i/o description 52 51 50 49 txd[3] txd[2] txd[1] txd[0] o transmit data: nibble/serial nrz data output to the endec that is valid on the rising edge of tx_clk. in serial mode, the txd[0] pin is used as the serial data pin, and txd[3:1] are ignored. 53 txe o transmit enable: becomes active when the first nibble/serial data of the packet is valid on txd[3:0] and goes low after the last nibble/serial data of the packet is clocked out of txd[3:0]. this signal connects directly to the endec (phy device). this signal is active high. 55 tx_clk i transmit clock: tx_clk is sourced by the phy. tx_clk is 2.5 mhz in 10base-t nibble mode, and 25 mhz in 100base-t nibble mode. 43 42 41 40 rxd[3] rxd[2] rxd[1] rxd[0] i receive data: nibble wide receive data (synchronous to rx_clk) that must be driven on the falling edge of rx_clk. in serial mode, the rxd[0] pin is used as the data input pin which is also clocked in on the falling edge of rx_clk. and rxd[3:1] pins become don?t cares. 44 rxdv/crs i carrier sense: signal provided by the endec and indicates that carrier is present. this signal is active high. 46 rx_clk i receive clock: re-synchronized clock from the endec and indicates that carrier is present. 48 col i collision detect: becomes active when a collision has been detected in half duplex modes. this signal is asynchronous, active high and ignored during full- duplex operation. table 2: W3100A mcu interface signal description pin# signal i/o description 5-11 a[14-8] / da[6-0] i address pins / device address pins used as address[14 ? 8] pin when set in mcu bus interface mode. used as device address[6 ? 0] pin for i 2 c interface when set in i 2 c interface mode. 14-21 a[7-0] i address pins 24-27 29-32 d[7-4] d[3-0] i/o data pins 61 /int o interrupt: indicates that the W3100A requires mcu attention after reception or transmission. the interrupt is cleared by writing to the isr (interrupt status register). all interrupts are maskable by writing img (interrupt mask register). this signal is active low. 64 /cs i chip select: this signal is active low.
 
 
        62 /wr i write enable: this signal is active low. 63 /rd i read enable: this signal is active low. 59 scl i scl: clock used by i 2 c when using i 2 c interface mode external pull high (4.7 k ? ) is required. 60 sda i/o sda: data used by i 2 c when using i 2 c interface mode external pull high (4.7 k ? ) is required. table 3: W3100A miscellaneous signal description pin# signal i/o description 1 reset i reset: active high input that initializes or reinitializes the W3100A. asserting this pin will force a reset process to occur which will result in all internal registers reinitializing to their default states as specified for each bit in section x.x, and all strapping options are reinitialized. refer to section x.x for further detail regarding reset. 4 clock i clock: primary clock required for internal operation of W3100A. in general, phy driving clock is shared for saving cost. (25mhz is recommended) note) sharing crystal source clock with multiple devices may cause some troubles. in our reference design, we used realtek's phy and one crystal for both phy and W3100A with verification. but for other kind of phy, please confirm safety prior to decision. 33 ext_clk i external clock: supplementary clock used for mcu i/f of W3100A. in external clocked mode, W3100A uses this clock to interface with mcu, and the access time of W3100A varies upon the frequency of the external clock. refer to xx for detailed timing diagram. frequency higher than 25mhz clock rate is granted. 36 /link i link: this is the signal generated by ethernet phy to indicate the phy is connected to the ethernet hub device or other peer device. this is active low. W3100A can knows the status of physical line connection with this /link input. if /link is high, W3100A interprets the physical line is disconnected. it results in tcp timeout and connection close. in special phy case, link signal varies in time, which can be grounded. 35 /serial i 10base-t serial/nibble select: with the selection of this active low input, transmit and receive data are exchanged serially at a 10 mhz clock rate on the least significant bits of the nibble-wide mii data buses, pins txd[0] and rxd[0], respectively. this mode is intended for use with the W3100A connected to a phy using a 10 mb/s serial interface. there is an internal pull-up resister for this pin. if this pin is left floated externally, then the device will be configured to normal mode. this pin must be externally pulled low (typically x k ? ) in
 
 
        order to configure the W3100A for serial mii operation. 34 /fdplx i full/half duplex select: this input pin selects half/full duplex operation. this pin must be externally pulled low (typically x k ? ) in order to configure the W3100A for full duplex operation. 0 = full duplex 1 = half duplex 28, 47, 56 mode[2? 0] i mode select: this input pin selects mcu i/f type and operating mode of W3100A. since each pin is positioned as pull-down internally, clock mode ? the default mode ? is selected when the connection is not made. m2 m1 m0 description 0 0 0 clocked mode mode where mcu bus signal is analyzed by W3100A by using the clock when mcu bus i/f is in use. 0 0 1 external clocked mode mode where mcu bus signal is analyzed by W3100A by using the external clock when mcu bus i/f is in use. 0 1 0 non- clocked mode mode where mcu bus signal is used directly by W3100A when mcu bus i/f is in use. 0 1 1 i 2 c mode mode using i 2 c for mcu i/f. 1 x x test mode mode used for testing at the plant. not to be used by regular users. clocked mode, external clocked mode and non-clocked mode are used to connect mcu and W3100A when mcu bus i/f is in use. choose an appropriate mode and use it by analyzing the mcu bus timing. refer to timing diagram for each mode for more detail. table 4: W3100A power supply signal description pin# signal i/o description 2, 12, 22, 38, 39, 58 vcc positive 3.3v supply pins 3, 13, 23, 37, 45, 54, 57 gnd negative (ground) supply pins: a decoupling capacitor is recommended to be connected between the vcc and gnd pins


 
   
 
   table5. W3100A registers map address register bit definitions 0x00 c0_cr s/w reset recv send close listen connect sock_init sys_init 0x01 c1_cr memory test recv send close listen connect sock_init 0x02 c2_cr recv send close listen connect sock_init 0x03 c3_cr recv send close listen connect sock_init 0x04 c0_isr recv_ok send_ok timeout closed established sinit_ok init_ok 0x05 c1_isr recv_ok send_ok timeout closed established sinit_ok 0x06 c2_isr recv_ok send_ok timeout closed established sinit_ok 0x07 c3_isr recv_ok send_ok timeout closed established sinit_ok 0x08 ir c3r c2r c1r c0r c3 c2 c1 c0 0x09 imr im_c3r im_c2r im_c1r im_c0r im_c3 im_c2 im_c1 im_c0 0x0a ? 0x0b reserved 0x0c idm_or ind_en l/b auto_inc 0x0d idm_ar0 indirect bus i/f mode address0 register 0x0e idm_ar1 indirect bus i/f mode address1 register 0x0f idm_dr indirect bus i/f mode data register 0x10 ? 0x13 c0_rw_pr channel 0 rx write pointer register 0x14 ? 0x17 c0_rr_pr channel 0 rx read pointer register 0x18 ? 0x1b c0_ta_pr channel 0 tx ack pointer register 0x1c ? 0x1f c1_rw_pr channel 1 rx write pointer register 0x20 ? 0x23 c1_rr_pr channel 1 rx read pointer register 0x24 ? 0x27 c1_ta_pr channel 1 tx ack pointer register


 
   
 
   0x28 ? 0x2b c2_rw_pr channel 2 rx write pointer register 0x2c ? 0x2f c2_rr_pr channel 2 rx read pointer register 0x30 ? 0x33 c2_ta_pr channel 2 tx ack pointer register 0x34 ? 0x37 c3_rw_pr channel 3 rx write pointer register 0x38 ? 0x3b c3_rr_pr channel 3 rx read pointer register 0x3c ? 0x3f c3_ta_pr channel 3 tx ack pointer register 0x40 ? 0x43 c0_tw_pr channel 0 tx write pointer register 0x44 ? 0x47 c0_tr_pr channel 0 tx read pointer register 0x48 ? 0x4b reserved 0x4c ? 0x4f c1_tw_pr channel 1 tx write pointer register 0x50 ? 0x53 c1_tr_pr channel 1 tx read pointer register 0x54 ? 0x57 reserved 0x58 ? 0x5b c2_tw_pr channel 2 tx write pointer register 0x5c ? 0x5f c2_tr_pr channel 2 tx read pointer register 0x60 ? 0x63 reserved 0x64 ? 0x67 c3_tw_pr channel 3 tx write pointer register 0x68 ? 0x6b c3_tr_pr channel 3 tx read pointer register 0x6c ? 0x7f reserved 0x80 ? 0x83 gar gateway address register 0x84 ? 0x87 smr subnet mask register 0x88 ? 0x8d shar source hardware address register 0x8e ? 0x91 sipr source ip address register 0x92 ? 0x93 irtr initial retry time-value register


 
   
 
   0x94 rcr tc4 tc3 tc2 tc1 tc0 0x95 rmsr rx data memory size register 0x96 tmsr tx data memory size register 0x97 ? 0x9f reserved 0xa0 c0_ssr channel 0 socket status register 0xa1 c0_sopr broadcast/err ndtimeout/b ndack sws/p protocol protocol protocol 0xa2 ? 0xa7 reserved 0xa8 ? 0xab c0_dir channel 0 destination ip address register 0xac ? 0xad c0_dpr channel 0 destination port register 0xae ? 0xaf c0_spr channel 0 source port register 0xb0 c0_ipr channel 0 ip protocol register 0xb1 c0_tosr channel 0 tos (type of service) register 0xb2 ? 0xb3 c0_mssr channel 0 mss (maximum segment size) register 0xb4 ? 0xb7 reserved 0xb8 c1_ssr channel 1 socket status register 0xb9 c1_sopr broadcast ndtimeout ndack sws protocol protocol protocol 0xba ? 0xbf reserved 0xc0 ? 0xc3 c1_dir channel 1 destination ip address register 0xc4 ? 0xc5 c1_dpr channel 1 destination port register 0xc6 ? 0xc7 c1_spr channel 1 source port register 0xc8 c1_ipr channel 1 ip protocol register 0xc9 c1_tosr channel 1 tos (type of service) register 0xca ? 0xcb c1_mssr channel 1 mss (maximum segment size) register


 
   
 
   0xcc ? 0xcf reserved 0xd0 c2_ssr channel 2 socket status register 0xd1 c2_sopr broadcast ndtimeout ndack sws protocol protocol protocol 0xd2 ? 0xd7 reserved 0xd8 ? 0xdb c2_dir channel 2 destination ip address register 0xdc ? 0xdd c2_dpr channel 2 destination port register 0xde ? 0xdf c2_spr channel 2 source port register 0xe0 c2_ipr channel 2 ip protocol register 0xe1 c2_tosr channel 2 tos (type of service) register 0xe2 ? 0xe3 c2_mssr channel 2 mss (maximum segment size) register 0xe4 ? 0xe7 reserved 0xe8 c3_ssr channel 3 socket status register 0xe9 c3_sopr broadcast ndtimeout ndack sws protocol protocol protocol 0xea ? 0xef reserved 0xf0 ? 0xf3 c3_dir channel 3 destination ip address register 0xf4 ? 0xf5 c3_dpr channel 3 destination port register 0xf6 ? 0xf7 c3_spr channel 3 source port register 0xf8 c3_ipr channel 3 ip protocol register 0xf9 c3_tosr channel 3 tos (type of service) register 0xfa ? 0xfb c3_mssr channel 3 mss (maximum segment size) register 0xfc ? 0xff reserved


 
   
 
   register definitions. register sets are categorized into (i) control registers related to command, status and interrupt, (ii) system registers for gateway address, subnet mask, source ip, source ha (hardware address) and timeout value, (iii) pointer registers for managing to send, receive data, and (iv) channel registers that control operation of each channel. r/w access to reserved register is not allowed, and also, writing on read-only register is not allowed. 1. control registers c0_cr (channel 0 command register) [r/w, 0x00] this register commands channel 0 socket to initialize, connect, close, transmit and receive data. sys_init command is used to set the gateway, subnet mask, source ip and source h/w address. the same command is used to close the socket in all channels. sock_init, connect, listen, close, send and recv are used when initializing, establishing a connection, terminating a connection, sending and receiving data for channel 0 socket. each corresponding bit is automatically cleared after executing the command. sock_init command opens the corresponding channel in tcp, udp, raw mode according to the protocol value as set at c0_sopr (channel 0 socket option protocol register). mcu can initialize the internal setting value of the chip by using s/w reset. each bit in this register is automatically cleared after executing the command. 7 6 5 4 3 2 1 0 s/w reset recv send close listen connect sock_init sys_init bit symbol description d0 sys_init command to set gateway ip address, subnet mask, source h/w address, source ip address d1 sock_init command to set corresponding protocol at c0_sopr and open channel 0 socket d2 connect command for channel 0 socket to make a connection to the server d3 listen command to stand by for connection when channel 0 socket acts in server mode d4 close command to terminate connection and close channel 0 socket d5 send command to transmit channel 0 socket data d6 recv command to receive channel 0 socket data d7 s/w reset s/w reset command


 
   
 
   c1_cr (channel 1 command register) [r/w, 0x01] this register commands channel 1 socket to initialize, connect, close, transmit and receive data. sock_init, connect, listen, close, send and recv are used when initializing, establishing a connection, terminating a connection, sending and receiving data for channel 1 socket. each corresponding bit is automatically cleared after executing the command. memory test command is used to verify transmission and reception memory where mcu reads and writes for the transmission and reception memory. set memory test bit to ?1? to become toggled as ?0?, ?1? and W3100A acts in memory test mode when in ?1?. memory test bit needs to become set at ?0? in order for W3100A to execute normal data transmission and reception. 7 6 5 4 3 2 1 0 memory test recv send close listen connect sock_init bit symbol description d0 reserved d1 sock_init sets corresponding protocol at c1_sopr and opens channel 1 socket d2 connect command for channel 1 socket to act in client mode to make a connection to the server d3 listen command to stand by for connection when channel 1 socket acts in server mode d4 close command to terminate connection and close channel 1 socket d5 send command to transmit channel 1 socket data d6 recv command to receive channel 1 socket data d7 memory test command to set memory test mode c2_cr, c3_cr (channel 2, 3 command register) [r/w, 0x02, 0x03] this register commands each channel 2, 3 sockets to initialize, connect, close, transmit and receive data. sock_init, connect, listen, close, send and recv are used when initializing, establishing a connection, terminating a connection, sending and receiving data for corresponding socket. each corresponding bit is automatically cleared after executing the command. 7 6 5 4 3 2 1 0 recv send close listen connect sock_init bit symbol description d0 reserved


 
   
 
   d1 sock_init sets corresponding protocol at cx_sopr and opens corresponding channel socket d2 connect command for corresponding channel socket to act in client mode to make a connection to the server d3 listen command to stand by for connection when corresponding channel socket acts in server mode d4 close command to terminate connection and close corresponding channel socket d5 send command to transmit corresponding channel socket data d6 recv command to receive corresponding channel socket data d7 reserved c0_isr (channel 0 interrupt status register) [r, 0x04] this register notifies the outcome of channel 0 socket command. this register becomes cleared as 0x00 by read operation. init_ok notifies the completion of sys_init command. established notifies the completion of a connection executed by connection set-up command (connect, listen). timeout notifies an occurrence of a time out while executing connection set-up command (connect, listen) or send command. sinit_ok, closed, send_ok and recv_ok each notifies the completion of sock_init, close, send and recv commands, respectively. 7 6 5 4 3 2 1 0 recv_ok send_ok timeout closed established sinit_ok init_ok bit symbol description d0 init_ok interrupt status bit for completion of sys_init command d1 sinit_ok interrupt status bit for completion of channel 0 socket sock_init command d2 established interrupt status bit for completion of channel 0 socket connection set-up d3 closed interrupt status bit for completion of channel 0 socket connection ending d4 timeout interrupt status bit for occurrence of time out during channel 0 socket connection set-up or data transmission d5 send_ok interrupt status bit for completion of channel 0 socket send command d6 recv_ok interrupt status bit for completion of channel 0 socket recv command d7 reserved


 
   
 
   c1_isr, c2_isr, c3_isr (channel 1, 2, 3 interrupt status register) [r, 0x05, 0x06, 0x07] this register notifies the outcome of the command of each channel 1, 2 and 3. this register becomes cleared as 0x00 by read operation. established notifies the completion of a connection executed by connection set-up command (connect, listen). timeout notifies an occurrence of a time out while executing connection set-up command (connect, listen) or send command. sinit_ok, closed, send_ok and recv_ok each notifies the completion of sock_init, close, send and recv commands, respectively. 7 6 5 4 3 2 1 0 recv_ok send_ok timeout closed established sinit_ok bit symbol description d0 reserved d1 sinit_ok interrupt status bit for completion of corresponding channel socket sock_init command d2 established interrupt status bit for completion of corresponding channel socket connection set-up d3 closed interrupt status bit for completion of corresponding channel socket connection ending d4 timeout interrupt status bit for occurrence of time out during corresponding channel socket connection set-up or data transmission d5 send_ok interrupt status bit for completion of corresponding channel socket send command d6 recv_ok interrupt status bit for completion of corresponding channel socket recv command d7 reserved ir (interrupt register) [r/w, 0x08] this register is used to sort channel with occurring interrupt. c0, c1, c2 and c3 bit notify each of 0, 1, 2 and 3 channels that an interrupt has occurred. mcu can identify which interrupt has occurred by examining the channel interrupt status register of the corresponding channel. c0r, c1r, c2r and c3r bit notify that data transmission has occurred for 0, 1, 2 and 3 channel. this register can clear the interrupt signal by writing ?1? at the corresponding bit.


 
   
 
   7 6 5 4 3 2 1 0 c3r c2r c1r c0r c3 c2 c1 c0 bit symbol description d0 c0 occurrence of channel 0 socket interrupt d1 c1 occurrence of channel 1 socket interrupt d2 c2 occurrence of channel 2 socket interrupt d3 c3 occurrence of channel 3 socket interrupt d4 c0r occurrence of channel 0 socket data receipt d5 c1r occurrence of channel 1 socket data receipt d6 c2r occurrence of channel 2 socket data receipt d7 c3r occurrence of channel 3 socket data receipt imr (interrupt mask register) [r/w, 0x09] this register is used to mask an interrupt from each bit of the corresponding interrupt register. interrupt is enabled when the corresponding bit of the interrupt register is set by setting the corresponding bit at ?1?. 7 6 5 4 3 2 1 0 im_c3r im_c2r im_c1r im_c0r im_c3 im_c2 im_c1 im_c0 bit symbol description d0 im_c0 channel 0 socket interrupt enable. d1 im_c1 channel 1 socket interrupt enable. d2 im_c2 channel 2 socket interrupt enable. d3 im_c3 channel 3 socket interrupt enable. d4 im_c0r channel 0 socket data receipt interrupt enable. d5 im_c1r channel 1 socket data receipt interrupt enable. d6 im_c2r channel 2 socket data receipt interrupt enable. d7 im_c3r channel 3 socket data receipt interrupt enable. idm_or (indirect mode option register) [r/w, 0x0c] this register facilitates indirect bus i/f mode enable and option set-up. ind_en (indirect mode enable) bit enables indirect bus i/f mode. h/w reset is required to convert from indirect bus i/f mode to another i/f. l/b (little-endian/big-endian) bit enables the access to indirect address register as little-endian (?1?) or big- endian (?0?).


 
   
 
   auto_inc (auto-increment) bit automatically increases the address during an access to indirect data register. 7 6 5 4 3 2 1 0 ind_en l/b auto_inc bit symbol description d7 ind_en indirect bus i/f mode enable. d6 reserved d5 reserved d4 reserved d3 reserved d2 reserved d1 l/b little-endian/big-endian ordering setting register. d0 auto_inc address auto-increment enable idm_ar0, idm_ar1 (indirect mode address register) [r/w, 0x0d ? 0x0e] this register is for address set-up when indirect bus i/f mode is in use, and the ordering changes according to the l/b bit set-up of im_opt register. when l/b bit of idm_opt register = ?0? msb lsb idm_addr0(0x0d) idm_addr1(0x0e) when l/b bit of idm_opt register = ?1? lsb msb idm_addr0(0x0d) idm_addr1(0x0e) idm_dr (indirect mode data register) [r/w, 0x0f] this register is for data when indirect bus i/f mode is in use. 2. system registers gar (gateway address register) [r/w, 0x80 ? 0x83] this register sets up the default gateway address to be used in the system, which is required to be set ip address before executing sys_init command. smr (subnet mask register) [r/w, 0x84 ? 0x87] this register sets up the subnet mask to be used in the system, which is required to be set up before executing sys_init command.


 
   
 
   shar (source hardware address register) [r/w, 0x88 ? 0x8d] this register sets up the ha to be used in the system, which is required to be set up before executing sys_init command. sipr (source ip address register) [r/w, 0x8e ? 0x91] this register sets up the ip to be used in the system, which is required to be set up before executing sys_init command. irtr (initial retry time-value register) [r/w, 0x92 ? 0x93] this register sets up the timer value for initial re-transmission when using the tcp, and timer value 1 is equivalent to 100us. value timer (ms) 0x03e8 100 0x07d0 200 0x0fa0 400 rcr (retry count register) [r/w, 0x94] this register assigns the number of retry when re-transmission occurs, and timeout interrupt occurs when re- transmission exceeds the number of retry. rmsr (rx data memory size register) [r/w, 0x95] this register allocates 8kb of received memory for each channel. ch3 ch2 ch1 ch0 s1 s0 s1 s0 s1 s0 s1 s0 s1 s0 memory size 0 0 1kb 0 1 2kb 1 0 4kb 1 1 8kb 2 bits of s1, s0 are allocated for each channel, and the memory for receiving is allocated according to the set-up value as shown in the table above.


 
   
 
   tmsr (tx data memory size register) [r/w, 0x96] this register allocates 8kb of transmitted memory for each channel. ch3 ch2 ch1 ch0 s1 s0 s1 s0 s1 s0 s1 s0 s1 s0 memory size 0 0 1kb 0 1 2kb 1 0 4kb 1 1 8kb 2 bits of s1,s0 are allocated for each channel, and the memory for sending is allocated according to the set- up value as shown in the table above. 3. pointer registers in order to read pointer registers, the shadow register of the corresponding pointer needs to be read and time delay of tx_clk * 4 is required before reading the corresponding pointer register. (access by w3100 mcu i/f is based on 1byte unit, but the pointer register is comprised of 4bytes. therefore, shadow register is used in order for mcu to properly read 4byte pointer.) to write, no access to the shadow register or time delay is necessary. shadow registers address applicable pointer registers c0_srw_pr 0x1e0 c0_ rw_pr c0_srr_pr 0x1e1 c0_ rr_pr c0_sta_pr 0x1e2 c0_ ta_pr c1_srw_pr 0x1e3 c1_ rw_pr c1_srr_pr 0x1e4 c1_ rr_pr c1_sta_pr 0x1e5 c1_ ta_pr c2_srw_pr 0x1e6 c2_ rw_pr c2_srr_pr 0x1e7 c2_ rr_pr c2_sta_pr 0x1e8 c2_ ta_pr c3_srw_pr 0x1e9 c3_ rw_pr c3_srr_pr 0x1ea c3_ rr_pr c3_sta_pr 0x1eb c3_ ta_pr c0_stw_pr 0x1f0 c0_ tw_pr


 
   
 
  
c0_str_pr 0x1f1 c0_ tr_pr c1_stw_pr 0x1f3 c1_ tw_pr c1_str_pr 0x1f4 c1_ tr_pr c2_stw_pr 0x1f6 c2_ tw_pr c2_str_pr 0x1f7 c2_ tr_pr c3_stw_pr 0x1f9 c3_ tw_pr c3_str_pr 0x1fa c3_ tr_pr rw_pr (rx write pointer register) [r/w, c0 : 0x10 ? 0x13, c1 : 0x1c ? 0x1f, c2 : 0x28 ? 0x2b, c3 : 0x34 ? 0x37] included in each channel, this register displays the data end pointer when receiving data. the register is managed internally by W3100A and increases according to the size of the data received. mcu receives and processes the data from rx read pointer to rx writer pointer of the corresponding channel. rr_pr (rx read pointer register) [r/w, c0 : 0x14 ? 0x17, c1 : 0x20 ? 0x23, c2 : 0x2c ? 0x2f, c3 : 0x38 ? 0x3b] included in each channel, this register displays the data start pointer when receiving data. after processing the received data, mcu updates rx read pointer as the pointer of the processed data and releases recv command. tw_pr (tx write pointer register) [r/w, c0 : 0x40 ? 0x43, c1 : 0x4c ? 0x4f, c2 : 0x58 ? 0x5b, c3 : 0x64 ? 0x67] included in each channel, this register displays the data end pointer of the data to be transmitted when transmitting data. for transmission, mcu writes the data to be transmitted from tx write pointer of the corresponding channel, and tx write pointer needs to be updated with a new value after the data is copied. transmission is made after executing the send command. tr_pr (tx read pointer register) [r/w, c0 : 0x44 ? 0x47, c1 : 0x50 ? 0x53, c2 : 0x5c ? 0x5f, c3 : 0x68 ? 0x6b] included in each channel, this register displays the current working pointer of the data to be transmitted when transmitting data. the register, used internally in W3100A, displays the pointer to start transmission when transmission is made by send command.


 
   
 
   ta_pr (tx ack pointer register) [r/w, c0 : 0x18 ? 0x1b, c1 : 0x24 ? 0x27, c2 : 0x30 ? 0x33, c3 : 0x3c ? 0x3f] included in each channel, this register displays the start pointer of the data to be transmitted when transmitting data. driver uses this register and tx write pointer to calculate free size of tx buffer. in other words, the difference in value of tx write pointer and tx ack pointer is the buffer size being used. 4. channel registers ssr (socket state register) [r, c0 : 0xa0, c1 : 0x b8, c2 : 0x d0, c3 : 0x e8] displays the socket state of the corresponding channel. value state meaning 0x00 sock_closed socket is closed 0x01 sock_arp standing by for reply after transmitting arp request 0x02 sock_listen standing by for connection set-up to the client when acting in passive mode 0x03 sock_synsent standing by for syn,ack after transmitting syn for connection set-up when acting in active mode 0x04 sock_synsent_ack connection set-up is complete after syn,ack is received and ack is transmitted in active mode 0x05 sock_synrecv syn,ack is being transmitted after receiving syn from the client in listen state, passive mode 0x06 sock_established connection set-up is complete in active, passive mode 0x07 sock_close_wait connection being terminated 0x08 sock_last_ack connection being terminated 0x09 sock_fin_wait1 connection being terminated 0x0a sock_ fin_wait2 connection being terminated 0x0b sock_closing connection being terminated 0x0c sock_time_wait connection being terminated 0x0d sock_reset connection is being terminated after receiving reset packet from the peer 0x0e sock_init socket initializing 0x0f sock_udp applicable channel is initialized in udp mode 0x10 sock_raw applicable channel is initialized in ip layer raw mode 0x11 sock_udp_arp standing by for reply after transmitting arp request packet to the destination for udp transmission 0x12 sock_udp_data data transmission in progress in udp or raw mode 0x13 sock_raw_init W3100A initialized in mac layer raw mode


 
   
 
   sopr (socket option and protocol register) [r/w, c0 : 0xa1, c1 : 0x b9, c2 : 0x d1, c3 : 0x e9] this register sets up socket option or protocol of the corresponding channel. 7 6 5 4 3 2 1 0 broadcast/ err ndtimeout/ b ndack sws/ p protocol protocol protocol bit symbol description d0 d1 d2 protocol sets up corresponding channel in tcp, udp, ip layer raw mode or mac layer raw mode value meaning 000 closed 001 sock_stream(tcp) 010 sock_dgram(udp) 011 sock_ipl_raw(ip layer raw mode) 100 sock_macl_raw(mac layer raw mode) d3 reserved d4 sws/p silly window syndrome ?0?: prevents silly window syndrome when using tcp ?1?: does not prevent silly window syndrome when using tcp when using mac layer raw mode, promiscuous packet (packet with specific mac address) can be received by when c0_sopr sets the bit as ?1? d5 ndack no delayed ack ?0?: uses delayed ack ?1?: does not use delayed ack ? ack is transmitted immediately upon receiving the data packet d6 ndtimeout/b no dynamic timeout ?0?: uses dynamic timeout during operation to set up timeout value regardless of the set-up value ?1?: activates by using the timeout value as set up in timeout value when using mac layer raw mode, broadcast packet can be received by when c0_sopr sets the bit as ?1? d7 broadcast/err broadcast packet is received and transmitted in ip layer raw mode when using mac layer raw mode, error packet can be received by when c0_sopr sets the bit as ?1?


 
   
 
   dir (destination ip address register) [r/w, c0 : 0xa8 ? 0xab, c1 : 0xc0 ? 0xc3, c2 : 0xd8 ? 0xdb, c3 : 0xf0 ? 0xf3] this register sets the destination ip address of each channel to be used in setting the tcp connection. in active mode, ip address needs to be set before executing the connect command. in passive mode, W3100A sets up the connection and then updates as peer ip internally. dpr (destination port register) [r/w, c0 : 0xac ? 0xad, c1 : 0xc4 ? 0xc5, c2 : 0xdc ? 0xdd, c3 : 0xf4 ? 0xf5] this register sets the destination port number of each channel to be used in setting the tcp connection. in active mode, port number needs to be set before executing the connect command. in passive mode, W3100A sets up the connection and then updates as peer port number internally. spr (source port register) [r/w, c0 : 0xae ? 0xaf, c1 : 0xc6 ? 0xc7, c2 : 0xde ? 0xdf, c3 : 0xf6 ? 0xf7] this register sets the source port number for each channel when using tcp or udp mode, and the set-up needs to be made before executing the sock_init command. ipr (ip protocol register) [r/w, c0 : 0xb0, c1 : 0xc8, c2 : 0xe0, c3 : 0xf8] this ip protocol register is used to be set up at the protocol field of ip header when executing the ip layer raw mode, and the set-up needs to be made before executing the sock_init command. tosr (tos register) [r/w, c0 : 0xb1, c1 : 0xc9, c2 : 0xe1, c3 : 0xf9] this register is used to be set up at the tos (type of service) field of ip header, and the set-up needs to be made before executing the sock_init command. mssr (mss register) [r/w, c0 : b2 ? 0xb3, c1 : 0xca ? 0xcb, c2 : 0xe2 ? 0xe3, c3 : 0xfa ? 0xfb] this register is used for mss (maximum segment size) of tcp, and the register displays mss set by the other party when tcp is activated in passive mode.


 
   
 
   internal memory and registers W3100A top level memory map W3100A internal register and memory are comprised of 512 byte control registers and 16kb data buffer as displayed in the diagram above. - 0x0000 ~ 0x00ff: space for control registers - 0x0100 ~ 0x01ff: space for shadow registers - 0x0200 ~ 0x3fff: not used (this space can be used by other devices) - 0x4000 ~ 0x5fff: tx data buffer - 0x6000 ~ 0x7fff: rx data buffer tx data buffer is the memory used for mcu transmission, and mcu can execute ?write? but cannot execute ?read?. rx data buffer is the memory used for mcu reception, and mcu can execute ?read? but cannot  control registers  not used tx data buffer rx data buffer   


 
   
 
   execute ?write?. in order to verify the active status of tx data buffer and rx data buffer, mcu can execute both write and read by setting the memory test mode (setting up of c1_cr memory test bit). in memory test mode, however, W3100A cannot execute proper transmission and reception of data. memory test mode must be terminated for normal operation of W3100A.


 
   
 
   description of functions 1. initialization of W3100A in order to use W3100A, the basic registers that are required to run W3100A need to be set up. the basic registers include gar (gateway address register), smr (subnet mask register), shar (source hardware address register), and sipr (source ip address register). gar, smr and sipr are the network information on which W3100A is operated, and the registers need to be set according to the operating environment. shar is the hardware address to be used at the mac layer of W3100A, and the address already provided to the manufacturer is used. after appropriately setting up above registers, W3100A can activate in the network by executing the sys_init command. activation can be verified by using ping (icmp echo request). 2. tcp protocol tcp is a connection-oriented protocol. by using three-way handshaking method in executing the connection set-up and termination process, reliable data transmission and reception are assured. tcp initialization process in order to use W3100A tcp, the protocol field of the corresponding channel?s cx_sopr (socket option/protocol register of channel x) needs to be set up as sock_stream(0x01). after the channel is activated by sock_init command, cx_tw_pr (tx write pointer register of channel x), cx_tr_pr (tx read pointer register of channel x), and cx_ta_pr (tx ack pointer register of channel x) need to be initialized with same value. tcp connection set-up process in W3100A, the tcp connection process as directed by connect or listen command is processed internally. sending syn packet as directed by connect command is called active open, and standing by for syn packet from peer as directed by listen command is called passive open. active open. tcp client mode that knows the ip address and port number of the destination, and the connection set-up is made ahead.


 
   
 
   closed init arp synsent established cmd : sys_init, close cmd : sock_init cmd : connect send : arp request recv : arp reply send : syn recv : syn, ack send : ack timeout  starting point recv : rst above diagram illustrates the connection set-up process using active open. each status can be verified through the socket status register of the corresponding channel. a. closed state: channel is initialized by executing sys_init or close command b. init state: sets the port number (source port register) to be used in the channel and activates the channel by executing the sock_init command c. arp state: in order to set up connection, mcu sets the destination ip, destination port register and executes the connect command. based on this command, W3100A changes to this state and transmits arp request packet. when arp reply packet is received from the peer under this state, it changes to synsent state and transmits syn packet. in case no reply is received from the peer, re-transmission is made. when no reply is received within the designated timeout duration, timeout occurs and it changes to closed state. d. synsent state: in this state, W3100A transmits syn packet and stands by to receive syn,ack packet from the peer. in case appropriate syn,ack packet is received, W3100A transmits ack packet and completes the connection set-up to become changed to established state. in case no appropriate syn,ack packet is received from the peer, re-transmission of syn packet is made. when no reply is received within the designated timeout duration, timeout occurs and it changes to closed state. also, if the peer has no application standing by in passive mode, the peer receives rst packet and changes to closed state. passive open. in tcp server mode, stands by for connection set-up from the peer under the listen command, and the connection set-up is accepted when requested.


 
   
 
   closed init listen synrcvd established cmd : sys_init, close cmd : sock_init cmd : listen recv : syn send : syn, ack recv : ack timeout  starting point recv : rst a. closed state: channel is initialized by executing sys_init or close command b. init state: sets the port number (source port register) to be used in the channel and activates the channel by executing the sock_init command c. listen state: stands by for connection set-up from the peer. when syn packet for the corresponding port is received from the peer, syn,ack packet is transmitted and changes to synrcvd state. d. synrcvd state: syn,ack packet is transmitted and stands by for ack from the peer. when reply from the peer is received, it changes to established state, and when no reply is received, syn,ack packet is re-transmitted and changes to closed state upon occurrence of timeout or receipt of rst packet. tcp connection termination process in line with the connection set-up process, tcp connection termination process also uses three-way handshaking method. sending fin after receiving close command from the application is called active close, and closing after receiving fin from the peer is called passive close. established close_wait last_ack fin_wait1 fin_wait2 closing time_wait recv : fin send : ack cmd : close send : fin closed recv : ack cmd : close send : fin recv : ack recv : fin send : ack recv : fin send : ack recv : ack recv : fin, ack send : ack active close passive close


 
   
 
   active close after completing data transmission and reception, the application uses the close command to terminate the connection set-up. when the connection is terminated under the close command in such established state, it is called active close, and the process is illustrated in the left-hand side of the diagram above. fin_wait1 state: changes from the established state under the close command and transmits fin packet. changes to fin_wait2 when ack for fin is received fro the peer. transmits ack and changes to closing state when fin is received from the peer. transmits ack and changes to time_wait when fin,ack is received. in case of no reply, re-transmission is made, and if no reply is received until timeout occurs, changes to closed state. fin_wait2 state: stands by for fin from the peer. in this state, W3100A does not receive data from the peer, and if data is received, connection set-up is immediately terminated through rst. this is because W3100A does not process additional data in half-close state. closing state: produced when the application closes simultaneously. changes to time_wait when ack is received from the peer. time_wait state: viewed as 2msl (maximum segment lifetime) wait state by tcp. in case fin is resent when the peer cannot receive ack, there is a function where tcp resends the last ack. in case tcp connection is in 2msl wait state, there is another function where other client, server is blocked from using this connection. in W3100A, considering the limited resource and for efficient use of the channel, it changes from this state to closed state without waiting. passive close in passive close, fin is received from the peer to close in the establihsed state as illustrated in the right- hand side of the above diagram. close_wait state: changed from established state by receiving fin from the peer. transmits ack for fin and creates closed interrupt at mcu. by processing the interrupt, mcu executes the close command to W3100A and completes the connection close. but, if data to be sent still are left, that is tw_pr value is not equal to ta_pr value, you should not issue the close command but wait until timeout occurs or ignore close procedure and make progress next step like sock_init command. last_ack state: when close command is handed down by mcu, fin is transmitted and stands by for ack. if no ack is received, fin packet is re-transmitted. if no reply is received until timeout occurs, it changes to closed state. tcp data transmission and reception unlike udp, tcp data transmission and reception is possible only after the connection set-up is made. W3100A has exclusive memory for data transmission and reception, 8kb for transmission and 8kb for reception. this memory can be set up as 1kb, 2kb, 4kb and 8kb by using rmsr (rx data memory size register) and tmsr (tx data memory size register).


 
   
 
  
tcp transmission memory size set-up W3100A transmission memory is comprised of 8kb in total, and the size can be assigned for each channel through tmsr register. an example of tmsr and each memory size is illustrated in the diagram below. when the memory size from channel 0 exceeds 8kb, all ensuing memory is ignored. 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x1800 
 
  
 tmsr <= 0x55 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x0400 1kb, 1kb, 2kb, 4kb allocated tmsr <= 0x90 0x0000 0x2000 ch0 0x1000 8kb allocated at channel 0 tmsr <= 0x03 remaining channels are not used 
  tcp data transmission process established tcp starting point cx_tw_pr = a cx_ta_pr = a fbs > sds(send data size) tcp send cal fbs(free buffer size) fbs <= cx_tw_pr - cx_ta_pr write data update cx_tw_pr send command send bit == '1' yes no no yes check previous send comand write data from cx_tw_pr cx_tw_pr <= cx_tw_pr + sds in order to execute W3100A tcp transmission, 4byte pointer of cx_tw_pr (tx write pointer register of channel x) and cx_ta_pr (tx ack pointer register of channel x) is used. cx_tw_pr is the pointer that writes the data to be transmitted from mcu, and cx_ta_pr is the pointer that completed W3100A transmission. cx_tw_pr and cx_ta_pr become equal after connection set-up is made. in active open, they are equally initialized under the sock_init command from mcu. in passive open, one is initialized by


 
   
 
   the other. the difference between the pointers become the actual fbs (free buffer size). data is recorded from cx_tw_pr according to such size, and when the data recording is complete, cx_tw_pr is increased according to the size of the recorded data and executes the send command. 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x1800 2kb allocated at each channel 0x0000 0x0800 pointer management during tcp transmission since transmission memory is 2kb, mask is 0x000007ff 0x0000 0x0800 0x0200 cx_ta_pr tx data 0x0000 0x0800 0x0200 cx_tw_pr cx_tw_pr is increased to 0x00123200 (mcu) cx_ta_pr is increased to 0x00123200 (W3100A) cx_tw_pr and cx_ta_pr are equal (0x00123000 assumed) when mcu records the transmission data for transmission and cx_tw_pr is increased when W3100A completes the transmission above diagram illustrates the change in cx_tw_pr and cx_ta_pr when actual data transmission is made after 2kb of transmission memory is set at ch0. tcp reception memory size set-up receiving memory of W3100A has the same structure of the transmission memory and operated in same method. the memory is comprised of 8kb in total, and the size can be assigned for each channel through rmsr (rx data memory size register). an example of rmsr and each memory size is illustrated in the diagram below. when the memory size from channel 0 exceeds 8kb, all ensuing memory is ignored. 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x1800 2kb allocated at each channel rmsr <= 0x55 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x0400 1kb, 1kb, 2kb, 4kb allocated rmsr <= 0x90 0x0000 0x2000 ch0 0x1000 8kb allocated at channel 0 rmsr <= 0x03 remaining channels are not used reception memory allocation


 
   
 
   tcp data reception process established tcp starting point cx_rw_pr = a cx_rr_pr= a rds >= recv len tcp receive cal rds(recv data size) rds <= cx_rw_pr - cx_rr_pr read data update cx_rr_pr recv command yes no read data from cx_rr_pr cx_rr_pr <= cx_rr_pr + len recv len tcp data reception by W3100A is illustrated in the above diagram. in W3100A, when data is received from the peer, the data is recorded as reception memory from cx_rw_pr (rx write pointer register of chnnel x), cx_rw_pr is increased according to the size of the received data when the reception is complete, and then mcu is interrupted to report a data reception. through interrupt or polling, mcu compares cx_rw_pr and cx_rr_ptr (rx read pointer register of channel x), and when data reception is observed, the size of the received data is first calculated and cx_rr_pr is increased after the data is read and processed from cx_rr_pr. finally, recv command is executed to report W3100A that the processing of the received data is complete. 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x1800 0x0000 0x0800 0x0280 pointer management during tcp reception 0x0000 0x0800 0x0280 cx_rr_pr rx data 0x0000 0x0800 0x0280 cx_rw_pr 0x0400 0x0400 2kb allocated at each channel since reception memory is 2kb, mask is 0x000007ff cx_rw_pr and cx_rr_pr are equal (0x00123280 assumed) when cx_rw_pr is increased by receiving data from the peer at W3100A when mcu completes the processing of the received data and cx_rr_pr is increased cx_rr_pr is increased to 0x00123400 (mcu) cx_rw_pr is increased to 0x00123400 (W3100A) above diagram illustrates the change in cx_rw_pr and cx_rr_pr when actual data is received after 2kb of reception memory is set at ch0.


 
   
 
   tcp retry time adjustment W3100A uses irtr (initial retry time-value register) and rcr (retry count register) to adjust the timer to be used in re-transmission of tcp. tcp re-transmission is executed when the initial retry timer expires, and the retry timer is reset at the value of * 2. such a process is repeated according to the rcr value, and in the last retry, timeout interrupt occurs and then gives up. formula of timeout value: irtr: initial retry time-value register rcr: retry count register irtr * 100us = start timeout second total timeout value until give-up = (irtr * 100us) *(2 rcr -1) internally, the default value of irtr is 0x07d0 and rcr is 0x06, where initial retry takes place at 200ms and the retry frequency becomes 6. therefore, unless these registers are revised, retry is made at 200ms, 600ms, 1400ms, 3000ms, 6200ms, 12600ms each and gives up at the final 12600ms. 3. udp protocol udp is a connectionless protocol. no connection set-up or termination process is needed, thereby creating lesser load. udp initialization process in order to use udp of W3100A, the cx_sopr (socket option/protocol register of channel x) protocol field of the corresponding channel needs to be set as sock_dgram(0x02) before socket initialization. unlike tcp, data transmission and reception is possible at udp without any connection set-up process. udp data transmission and reception udp transmission is activated similarly to tcp. all data received at its port can be received, and mcu needs to analyze the header information of the data to verify transmitting ip and port to confirm the corresponding data before processing. set-up of transmission and reception memory size is identical to tcp. udp data transmission udp transmission is activated similarly to tcp. calculating the free buffer size of the memory, data copying and cx_tw_pr are identical. the difference is the usage of cx_tr_pr instead of cx_ta_pr. another difference is that destination ip and port need to be set. in other words, if the destination ip and


 
   
 
   port set prior to this transmission are different to the destination ip and port to be used for the transmission, the values need to be updated before executing the send command. udp udp starting point cx_tw_pr = a cx_tr_pr = a fbs > sds(send data size) udp sendto cal fbs(free buffer size) fbs <= cx_tw_pr - cx_tr_pr write data update cx_tw_pr send command send bit == '1' yes no no yes check previous send comand write data from cx_tw_pr cx_tw_pr <= cx_tw_pr + sds if need, update dip, dport 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x1800 0x0000 0x0800 0x0000 0x0800 0x0200 cx_tr_pr tx data 0x0000 0x0800 0x0200 cx_tw_pr pointer management during udp transmission 2kb allocated at each channel since transmission memory is 2kb, mask is 0x000007ff cx_tw_pr and cx_ta_pr are equal (0x00123000 assumed) cx_tw_pr is increased to 0x00123200 (mcu) cx_tr_pr is increased to 0x00123200 (W3100A) when mcu records the transmission data for transmission and cx_tw_pr is increased when W3100A completes the transmission above diagram illustrates the change in cx_tw_pr and cx_ta_pr when actual data transmission is made after 2kb of transmission memory is set at ch0. udp data reception W3100A?s udp reception is similar to tcp reception. the difference is that the header information for udp processing is included in the received data in addition to the data. the header is structured as below. tlen sip sport 02 6 8 4 udp data xx


 
   
 
   the header is comprised of (1) tlen field displaying the size of 2byte header + data, (2) 4byte sip displaying the sender ip that transmitted udp data, and (3) sport displaying the sender port. mcu uses such information to determine whether the data needs to be processed by mcu before processing. udp udp starting point cx_rw_pr = a cx_rr_pr = a rds >= recv len udp receivefrom cal rds(recv data size) rds <= cx_rw_pr - cx_rr_pr read data update cx_rr_pr recv command yes no read data from cx_rr_pr cx_rr_pr <= cx_rr_pr + len recv len processing udp data above diagram illustrates the mcu processing flow for udp data. excluding the header processing for the udp data, the basic flow is identical to tcp reception. 0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x1800 0x0000 0x0800 0x0200 0x0000 0x0800 0x0200 cx_rr_pr rx data 0x0000 0x0800 0x0200 cx_rw_pr 0x0400 0x0400 head 0x0000 0x0800 0x0200 cx_rr_pr rx data 0x0400 head rx data head 0x0580 rx data head 0x0580 0x0000 0x0800 cx_rw_pr 0x0580 udp reception memory management for each channel 2kb allocated at each channel since reception memory is 2kb, mask is 0x000007ff cx_rw_pr and cx_rr_pr are equal (0x00123200 assumed) cx_rw_pr is increased to 0x00123400 (W3100A) cx_rw_pr is increased to 0x00123580 (W3100A) cx_rr_pr is increased to 0x00123400 (mcu) cx_rr_pr is increased to 0x00123580 (mcu) when mcu completes the processing of the received data and cx_rr_pr is increased when mcu completes the processing of the received data and cx_rr_pr is increased when cx_rw_pr is increased by receiving data from the peer at W3100A when cx_rw_pr is increased by receiving data from the peer at W3100A at udp reception buffer, many different data may exist between cx_rw_pr and cx_rr_pr. therefore, the header information is used to differentiate and process such data. above diagram illustrates the process where 2 udp?s receive the data and processed by mcu.


 
   
 
   4. ip layer raw mode W3100A?s ipl_raw(ip layer raw) mode is used in processing protocols (e.g., icmp, etc.) other than tcp and udp as provided by W3100A. ipl_raw mode initialization process in order to use W3100A?s ipl_raw mode, the protocol value of the ip layer to be used (e.g., 0x01 in case of icmp) needs to be set as cx_ipr (ip protocol register of channel x), and the cx_sopr (socket option/protocol register of channel x) protocol field of the corresponding channel needs to be set as sock_ipl_raw(0x03) before socket initialization (sock_init command). as in udp, data transmission and reception is possible when the corresponding channel is initialized. ipl_raw mode data transmission and reception transmission in ipl_raw mode is activated similarly to udp, and the reception is made for the same protocol data as cx_ipr. ipl_raw mode data transmission ipl_raw ipl_raw starting point cx_tw_pr = a cx_tr_pr = a fbs > sds(send data size) ipl_raw sendto cal fbs(free buffer size) fbs <= cx_tw_pr - cx_tr_pr write data update cx_tw_pr send command send bit == '1' yes no no yes check previous send comand write data from cx_tw_pr cx_tw_pr <= cx_tw_pr + sds if need, update dip for reception in ipl_raw mode, calculating the free buffer size of the reception memory, data copying and usage of cx_tw_pr, cx_tr_pr are identical to udp, and the destination ip needs to be set. unlike udp, however, no port needs to be set. as in udp, if the destination ip set prior to this transmission is different to the destination ip to be used for the transmission, the value need to be updated before executing the send command.


 
   
 
   0x0000 0x2000 ch3 ch2 ch1 ch0 0x0800 0x1000 0x1800 0x0000 0x0800 0x0000 0x0800 0x0200 cx_tr_pr tx data 0x0000 0x0800 0x0200 cx_tw_pr ipl_raw transmission pointer management 2kb allocated at each channel since transmission memory is 2kb, mask is 0x000007ff cx_tw_pr and cx_tr_pr are equal (0x00123000 assumed) when mcu records the transmission data for transmission and cx_tw_pr is increased when W3100A completes the transmission cx_tw_pr is increased to 0x00123200 (mcu) cx_tr_pr is increased to 0x00123200 (W3100A) above diagram illustrates the change in cx_tw_pr and cx_ta_pr when actual data transmission is made after 2kb of transmission memory is set at ch0. ipl_raw mode data reception reception in W3100A?s ipl_raw mode is similar to udp reception. as in udp, header information is included in the received data in addition to the data, and the header is structure as below. tlen 02 sip 6 ip raw data xx the header information ipl_raw mode contains (1) tlen identical to udp tlen displaying the total length of data size + header length, and (2) 4byte sip displaying the sender ip that transmitted udp data. both are used with cx_rw_pr and cx_rr_pr to process the received data. the process is made identically to the udp reception data processing. 5. mac layer raw mode in macl_raw (mac layer raw) mode, W3100A is used as other general nic (network interface controller), and W3100A?s tcp/ip module is not used in this mode. when tcp/ip is used through W3100A, the number of channels is limited to 4. for systems using more than 4 channels simultaneously, W3100A uses this mode and s/w tcp/ip can be processed in the higher drive. if mac layer raw mode is used, W3100A uses channel 0 only and other channels are ignored.


 
   
 
   macl_raw mode initialization process in macl_raw mode, data transmission and reception is possible after the protocol field of c0_sopr (socket option/protocol register of channel 0) is set as sock_macl_raw(0x04) and by using sock_init command of channel 0. option values to be set at c0_sopr include err, b, p bit. err bit allows the reception of packet with error, b bit allows the reception of broadcast packet, and p bit allows the reception of promiscuous packet (packet with specific mac address). macl_raw mode data transmission and reception transmission in macl_raw mode is activated similarly to udp, and the data reception is made according to c0_sopr. macl_raw mode data transmission management macl_raw mode?s transmission memory management uses a single channel only, that is channel 0, and uses 8kb of transmission memory. 0x0000 0x2000 macl_raw transmission memory management 0x0000 0x2000 0x0200 c0_tr_pr tx data 0x0000 0x2000 0x0200 c0_tw_pr since transmission memory is 8kb, mask is 0x00001fff c0_tw_pr and c0_tr_pr are equal (0x00000000 assumed) c0_tw_pr is increased to 0x00000200 (mcu) when mcu records the transmission data for transmission and c0_tw_pr is increased c0_tr_pr is increased to 0x00000200 (W3100A) macl_raw mode data transmission for transmission in macl_raw mode, calculating the free buffer size of the transmission memory, data copying, and usage of c0_tw_pr, c0_tr_pr are identical to udp, but unlike udp, no destination ip and port set up is needed. in other words, in macl_raw mode, all protocol processing is made by mcu, and such information is included in the transmission frame.


 
   
 
   macl_raw macl_raw starting point c0_tw_pr = a c0_tr_pr = a fbs > sds(send data size) macl_raw sendto cal fbs(free buffer size) fbs <= c0_tw_pr - c0_tr_pr write data update c0_tw_pr send command send bit == '1' yes no no yes check previous send comand write data from c0_tw_pr c0_tw_pr <= c0_tw_pr + sds macl_raw mode data reception management 0x0000 0x2000 0x0200 0x0000 0x2000 0x0200 c0_rr_pr rx data 0x0000 0x2000 0x0200 c0_rw_pr 0x0400 0x0400 head 0x0000 0x2000 0x0200 c0_rr_pr rx data 0x0400 head rx data head 0x0580 rx data head 0x0580 0x0000 0x2000 c0_rw_pr 0x0580 macl_raw reception memory management since reception memory is 8kb, mask is 0x00001fff when c0_rw_pr is increased by receiving data from the peer at W3100A c0_rw_pr and c0_rr_pr are equal (0x00000200 assumed) c0_rw_pr is increased to 0x00000400 (W3100A) c0_rw_pr is increased to 0x00000580 (W3100A) c0_rr_pr is increased to 0x00000400 (mcu) c0_rr_pr is increased to 0x00000580 (mcu) when c0_rw_pr is increased by receiving data from the peer at W3100A when mcu completes the processing of the received data and c0_rr_pr is increased when mcu completes the processing of the received data and c0_rr_pr is increased macl_raw mode?s reception memory management uses 1 channel only, therefore all 8kb is allocated to channel 0. above diagram illustrates the processing of 2 data after c0_wr_pr and c0_rr_pr are equally initialized as 0x00000200. macl_raw mode data reception in W3100A?s macl_raw mode, the reception of the set packets are made according to the receive options as set at c0_sopr. as in udp, header information is included in the received data in addition to the data, and the header is structure as below.


 
   
 
  
tlen 023 stt mac raw data as shown in the above diagram, the header information ipl_raw mode contains (1) tlen identical to udp tlen displaying the total length of data and header length, and (2) 1 byte stt displaying the status of the received data. the description of the received data is recorded at stt byte as below. 7 6 5 4 3 2 1 0 meaning 1 x x x x x x x destination h/w address of the received packet is identical to shar (source h/w address register) x x 1 x x x x x reception of broadcasting packet x x x 1 x x x x reception of packet with error macl_raw macl_raw starting point c0_rw_pr = a c0_rr_pr = a rds >= recv len macl_raw receivefrom cal rds(recv data size) rds <= c0_rw_pr - c0_rr_pr read data update c0_rr_pr recv command yes no read data from c0_rr_pr c0_rr_pr <= c0_rr_pr + len recv len processing macl_raw data as in udp, the reception module uses c0_rw_pr and c0_rr_pr to process the received data. the process is identical to udp received data process.


 
   
 
   application information W3100A mcu i/f is comprised of direct bus i/f mode, indirect bus i/f mode, and i 2 c i/f mode 1. relationship between mcu bus i/f mode and mode pin (m[2:0]) m2 m1 m0 description 0 0 0 clocked mode mode using a clock to analyze the mcu bus signal (default mode) 0 0 1 external clocked mode mode using an external clock to analyze the mcu bus signal 0 1 0 non-clocked mode mode directly using the mcu bus signal 0 1 1 i 2 c mode mode using i 2 c 1 x x test mode mode used at the manufacturing plant for testing not to be used by the average user refer to the timing by mode diagram for detailed access timing for each mode. (page 50 ? page 58) considering the i/f between the mcu and W3100A, clocked mode, external clocked mode, or non-clocked mode can be used if bus i/f is provided by the mcu. timing is slightly different in each mode, and mcu bus timing also needs to be considered before selecting the mode. the first thing to consider in selecting the mode is the relationship among /cs, /rd, /wr, and address[14:0] granted to the W3100A. if /cs is low and /rd, /wr, and address[14:0] have valid signals over 100ns, use clocked mode. this mode is the default mode and is suitable for most systems. however, some systems require faster access (access time of less than 100ns) to the W3100A, in which case either the external clocked mode or the non-clocked mode should be selected. non-clocked mode should be used in a situation where /cs granted to the W3100A drops to low as in the access timing diagram on page 54 and /rd or /wr goes low after 10ns. otherwise, external clocked mode should be used. in the external clocked mode, the access time differs depending on the clock granted to ext_clk. therefore, caution should be taken in using external clocked mode. refer to the access timing diagram with ext_clk of 50mhz (page 52). generally, clocked mode is recommended after adjusting the access time for the W3100A to 100ns or higher (page 50), rather than using the external clocked mode. further details about each mode are as follows: clocked mode is used in internal functions and in the mcu i/f using the clock granted to W3100A, and the access timing may vary depending on the frequency (basic frequency: 25mhz). clock basically uses 25mhz, but when a different frequency clock other than 25mhz is used, the access time of the mcu bus i/f and timeout occurrence time can change. in external clocked mode, the internal functions of W3100A are executed by the clock granted to the clock


 
   
 
   pin, and the mcu bus i/f is activated by the external clock. in non-clocked mode, the internal functions of W3100A are executed by the clock granted to the clock pin, and the mcu bus i/f is activated by /cs, /rd, /wr of mcu. as shown in the timing diagram, and unlike clocked mode and external clocked mode, a timing condition exists between /cs, /rd, and /wr. i 2 c i/f mode is used when an mcu connected to W3100A supports i 2 c i/f but does not support bus i/f. the basic frequency to be used for i 2 c is activated by the clock granted to the clock pin and both 100khz mode and 400khz mode are supported. 2. direct bus i/f mode. as illustrated in the above diagram, direct bus i/f mode uses a 15-bit address line and 8-bit data line, /cs, /rd, /wr, /int, which is identical to the i/f of the existing W3100A. since the access timing changes from clocked mode (page 50) to external clocked mode (page 52) and to non-clocked mode (page 54), the mcu bus access timing needs to be considered. 3. indirect bus i/f mode. indirect bus i/f mode uses a 2-bit address line and 8-bit data line, /cs, /rd, /wr, and /int. of the address lines, a[14:4] is grounded as ?0? and a[3:2] is pulled up (4.7 k ? ) to ?1?. /int a[14:0] mcu /w r d[7:0] /rd /int d[7:0] a[14:0] /cs rxc mii           /link /wr /rd ethernet phy crs rxd[3:0] txe txd[3:0] txc col rx_clk rxdv/crs rxd[3:0] txd[3:0] tx_clk col txe trans- former  tx rx rj-45 /cs /link /fdplx /fdplx clock clock /int a[1:0] mcu /w r d[7:0] /rd /int d[7:0] a[1:0] /cs rxc mii        /link /wr /rd ethernet phy crs rxd[3:0] txe txd[3:0] txc col rx_clk rxdv/crs rxd[3:0] txd[3:0] tx_clk col txe trans- former  tx rx rj-45 /cs /link /fdplx /fdplx clock clock a[3:2] a[14:4] vcc 4.7 k ?


 
   
 
   a[3:2] can be set up as ?1? by software after connecting the additional 4 address lines of a[3:0] and grounding the remaining a[14:4]. registers related to indirect bus i/f mode are listed below: address name b7 b6 b5 b4 b3 b2 b1 b0 0x0c idm_or ind_en l/b auto_inc 0x0d idm_ar0 indirect bus i/f mode address0 register 0x0e idm_ar1 indirect bus i/f mode address1 register 0x0f idm_dr indirect bus i/f mode data register idm_or (indirect mode option register) is comprised of ind_en that determines the use of indirect bus i/f mode, the l/b bit that determines byte ordering during address set-up, and the auto_inc bit that automatically increases the address. idm_ar0 (indirect mode address0 register) designates the higher byte of the address, and idm_ar1 (indirect mode address1 register) designates the lower byte of the address. the ordering of idm_ar0 and idm_ar1 varies depending upon the l/b bit set-up. idm_dr (indirect mode data register) displays the data to be accessed. in order to use indirect bus i/f mode, ind_en of idm_or needs to be setup first. in order to read the internal register value of W3100A, the address of the internal register to be accessed needs to be written to idm_ar0,1. later, when idm_dr is read, the value of the register to be accessed is read. in order to write the internal register value of W3100A, the address of the internal register to be accessed needs to be written at idm_ar0,1. later, the value can be written at idm_dr. the l/b bit of idm_or that sets up the order when accessing idm_ar0,1 functions as below: if l/b bit of idm_opt register = ?0? msb lsb idm_addr0(0x0d) idm_addr1(0x0e) if l/b bit of idm_opt register = ?1? lsb msb idm_addr0(0x0d) idm_addr1(0x0e) auto_inc bit allows register access without setting idm_ar0,1 for each access when continuous access is made, where idm_ar0,1 is automatically incremented by 1 with each idm_dr access.


 
   
 
   4. i 2 c i/f mode. i 2 c i/f uses sda, scl to provide serial data transmission and reception in i 2 c mode between mcu and W3100A. as a clock line, scl needs to be provided by mcu, and sda is used as the line to transfer data and address between mcu and W3100A. a simple block diagram as shown above illustrates the connection between mcu and W3100A using i 2 c. as illustrated above, it is recommended to set the device address for i 2 c by using a[14:8], provide a pull-up of 4.7 k ? for scl and sda lines externally, and then ground the remaining address a[7:0]. /int sda mcu scl /int scl sda rxc mii        /link ethernet phy crs rxd[3:0] txe txd[3:0] txc col rx_clk rxdv/crs rxd[3:0] txd[3:0] tx_clk col txe trans- former  tx rx rj-45 /link /fdplx /fdplx clock clock a[7:0] a[14:8] i 2 c device address set-up vcc vcc


 
   
 
   in order to synchronize mcu and W3100A, i 2 c i/f creates the condition for start before transmitting and receiving data, and the condition for stop is created after the completion of data transmission and reception. when sda line becomes low while scl line is high, it becomes the signal for the condition for start. when sda line becomes high while scl line is high, it becomes the signal for the condition for stop. data validity sda scl data stable data stable data change start and stop definition sda scl start stop access method includes random read/write access for 1byte-unit access and sequential read/write access for sequential access. sda line s t a r t device address w r i t e word address0(1b) data(1b) s t o p a c k a c k a c k random byte write m s b m s b m s b l s b l s b l s b r / w word address1(1b) a c k m s b l s b


 
   
 
   1byte-unit access is functions as illustrated in the above diagram, and random byte write sends in the order of start, device a ddress, 2 byte address of the actual register to be accessed, and the actual data before sending stop. in order to set up the address of the register to be accessed, random byte read first sends start, device address and 2 byte re gister address before sending stop. later, once again, start, device address is sent, actual data is read and stop is sent. sda line s t a r t device address w r i t e word address0(1b) data(1b) s t o p a c k a c k random byte read m s b m s b l s b l s b r / w sda line s t a r t device address r e a d a c k m s b m s b l s b r / w l s b n o a c k s t o p word address1(1b) a c k m s b l s b


 
   
 
   sequential byte write sequentially sends start, device address, 2 byte address of the actual register to be accessed, and data to be written before sending stop. as a result, mcu can designate the address of the data to be written once, which allows for the data to be written sequentially and the address to automatically increase by 1. sda line s t a r t device address w r i t e word address0(1b) data(1b) s t o p a c k a c k a c k sequential byte write m s b m s b m s b l s b l s b l s b r / w word address1(1b) a c k m s b l s b data(1b) a c k m s b l s b ......... in order to set up the address of the register to be accessed, sequential byte read first sends start, device address and 2 byt e register address before sending stop. later, once again, start, device address is sent and actual data is sequentially read before sending stop. also at this time, the address automatically increases by 1.


 
   
 
   sda line s t a r t device address w r i t e word address0(1b) data(1b) s t o p a c k a c k sequential byte read m s b m s b l s b l s b r / w sda line s t a r t device address r e a d a c k m s b m s b l s b r / w l s b n o a c k s t o p word address1(1b) a c k m s b l s b data(1b) m s b l s b data(1b) m s b l s b .......
 

 
   
 
   5. physical layer interface W3100A is used for linking with an ethernet physical layer device (realtek rtl8201, national dp83843, smsc 83c180, 83c183, levelone lxt905, etc.). such physical layer devices generally use the media interface (mi) for configuration and the media independent interface (mii) for data transfer when interfacing with the ethernet mac layer. 5.1 media interface (mi) the mi is the serial i/f for reading/writing the internal register of the physical layer device to set up or check the configuration of the physical layer device, and its pin is generally denoted as mdc or mdio. since the W3100A does not configure or check the configuration of the physical layer device through the mi, the systems equipped with the W3100A configure the physical layer device using its pin (in general, speed, duplex, auto negotiate, etc.), so that the W3100A can refer to the configuration status through the W3100A pins (/link, /serial, /fdplx). in other words, /link, /serial, and /fdplx pins of the W3100A must be connected to reflect the status of the physical layer device. in general, the physical layer device reports the network configuration status using the led pins, which are connected with the /link, /serial, and /fdplx pin of the W3100A. besides, depending on the systems, it may be necessary for the mcu to configure or check the configuration of the physical layer device, in which case the mcu must access the physical layer device directly through the mi. 5.2 media independent interface (mii) the mii handles the data transfer between the W3100A and the physical layer device. the mii is composed of tx_clk, txe, and txd[0:3] signals for sending data and rx_clk, rxdv, rxd[0:3], and col signals for receiving data. when sending data from the W3100A, txe and txd[0:3] are output in synchronization with the falling edges of tx_clk input from the physical layer device because physical layer devices generally recognize the rising edges of tx_clk. when receiving data, in general, the physical layer devices output rxdv, rxd[0:3], and col signals in synchronization with the falling edges of rx_clk, so the W3100A recognizes the signals at the rising edges of rx_clk. there are serial mii that use 1-bit data signals and nibble mii that use 4-bit data signals. 5.2.1 serial mii this mode is the i/f for 10mbps physical layer devices, and is composed of 1-bit txd and rxd. tx_clk and rx_clk use a 10mhz cycle. when linking the W3100A with the physical layer device in this mode, rxd and txd of the physical layer device must be connected to rxd[0] and txd[0] of the W3100A.
 

 
   
 
   5.2.2 nibble mii this mode is the i/f for 10/100mbps physical layer devices, and is composed of 4-bit txd[0:3] and rxd[0:3]. tx_clk and rx_clk use a 2.5mhz cycle at 10mbps and 25mhz at 100mbps. when linking the W3100A with the physical layer device in this mode, rxd[0:3] and txd[0:3] of the physical layer device must be connected to rxd[0:3] and txd[0:3] of the W3100A. the W3100A supports both the serial mode and the nibble mode.  5.2.3 mii frame format txen = 0 txen = 1 txen = 0 idle preamble start of frame delimiter data nibbles idle preamble sfd data1 data2 data n-1 data n 62b 2b preamble 1 0 1 0 ? ? 62 bits long sfd 1 1 data between 64 ? 1518 data bytes idle txen = 0 5.3.4 nibble mii order mac?s serial bit stream lsb d0 d1 d2 d3 d4 d5 d6 d7 msb first nibble second nibble txd0/rxd0 txd1/rxd1 txd2/rxd2 txd3/rxd3 
 

 
   
 
   timing diagrams 1. clocked mode(clock = 25mhz) timing waveform of register/memory read cycle   timing waveform of register/memory write cycle                (note: valid period of address signal should be larger than or equal to assertion period of cs signal.)  
                       
             
 

 
   
 
   ac characteristics direct mode  indirect mode (note: above data is based on simulation.) speed symbol min max units chip select to output t co 73 ns output enable to valid output t oe 73 ns chip select to low-z output t lz 13 54 ns output enable to low-z output t olz 13 54 ns chip disable to high-z output t hz 6 ns output disable to high-z output t ohz 6 ns read output hold from address change t oh 0 ns chip select to end of write t cw 56 ns write pulse width t wp 56 ns data to write time overlap t dw 24 ns write data hold from write time t dh 7 ns speed symbol min max units chip select to output t co 81 ns output enable to valid output t oe 81 ns chip select to low-z output t lz 13 54 ns output enable to low-z output t olz 13 54 ns chip disable to high-z output t hz 6 ns output disable to high-z output t ohz 6 ns read output hold from address change t oh 0 ns chip select to end of write t cw 56 ns write pulse width t wp 56 ns data to write time overlap t dw 24 ns write data hold from write time t dh 7 ns
 

 
   
 
   2. external clocked mode(ext_clk = 50mhz) timing waveform of register/memory read cycle   timing waveform of register/memory write cycle                (note: valid period of address signal should be larger than or equal to assertion period of cs signal.) 
                       
             
 

 
   
 
   ac characteristics direct mode  indirect mode (note: above data is based on simulation.) speed symbol min max units chip select to output t co 53 ns output enable to valid output t oe 53 ns chip select to low-z output t lz 13 34 ns output enable to low-z output t olz 13 34 ns chip disable to high-z output t hz 6 ns output disable to high-z output t ohz 6 ns read output hold from address change t oh 0 ns chip select to end of write t cw 36 ns write pulse width t wp 36 ns data to write time overlap t dw 24 ns write data hold from write time t dh 7 ns speed symbol min max units chip select to output t co 61 ns output enable to valid output t oe 61 ns chip select to low-z output t lz 13 34 ns output enable to low-z output t olz 13 34 ns chip disable to high-z output t hz 6 ns output disable to high-z output t ohz 6 ns read output hold from address change t oh 0 ns chip select to end of write t cw 36 ns write pulse width t wp 36 ns data to write time overlap t dw 24 ns write data hold from write time t dh 7 ns
 

 
   
 
   3. non-clocked mode(clock = 25mhz) timing waveform of register/memory read cycle   timing waveform of register/memory write cycle                                                              (note: valid period of address signal should be larger than or equal to assertion period of cs signal.)  
                        
 
 
               
    
 

 
   
 
   ac characteristics direct mode  (note1: in non-clocked mode, assertion period of cs signal should enclose assertion period of rd, wr signal. especially, read signal should be asserted 5ns previously. note2: in case of non-clocked mode, high speed working is possible because access time is short. but, you?d better consider mcu setup time to design in order to have bus access time more than enough compared to above data. note3: above data is based on simulation.) speed symbol min max units chip select to output t co 11 ns chip select low to read low t cr 5 ns output enable to valid output t oe 10 ns chip select to low-z output t lz 4 8 ns output enable to low-z output t olz 4 8 ns read high to chip select high t rc 0 ns chip disable to high-z output t hz 5 ns output disable to high-z output t ohz 5 ns read output hold from address change t oh 5 ns chip select to end of write t cw 5 ns address set-up time t as 0 ns chip select low to write low t csw 0 ns write high to chip select high t wc 0 ns write pulse width t wp 5 ns write recovery time t wr 1 ns data to write time overlap t dw 4 ns write data hold from write time t dh 5 ns
 

 
   
 
  ! indirect mode (note: above data is based on simulation.)  speed symbol min max units chip select to output t co 18 ns chip select low to read low t cr 5 ns output enable to valid output t oe 18 ns chip select to low-z output t lz 4 8 ns output enable to low-z output t olz 4 8 ns read high to chip select high t rc 0 ns chip disable to high-z output t hz 5 ns output disable to high-z output t ohz 5 ns read output hold from address change t oh 5 ns chip select to end of write t cw 13 ns address set-up time t as 0 ns chip select low to write low t csw 0 ns write high to chip select high t wc 0 ns write pulse width t wp 13 ns write recovery time t wr 1 ns data to write time overlap t dw 12 ns write data hold from write time t dh 5 ns
 

 
   
 
  " 4. i 2 c mode(clock = 25mhz) i 2 c bus start/stop bits timing  i 2 c bus data timing #            $$ $%& #       
       
 

 
   
 
   ac characteristics (note: above data is based on simulation.)  speed symbol min max units start condition setup time t sas 40 ns start condition hold time t sah 40 ns stop condition setup time t sos 40 ns start / stop bits timing stop condition hold time t soh 40 ns clock frequency, scl f scl 1 mhz scl high time t ch 200 ns scl low time t cl 300 ns sda, scl rise time t rt ns sda, scl fall time t ft ns data input hold time t dh 0 ns data input setup time t ds 0 ns bus data timing output valid from clock t ov 285 ns
 

 
   
 
   5. media independent interface (mii) mii tx timing   

      ac characteristics parameter description notes min typ max units tco tx_clk to txd, tx_en 10mbps 202 - 205 ns tdcs txd, tx_en setup time to tx_clk 10mbps 195 - 198 ns tco tx_clk to txd, tx_en 100mbps 22 - 25 ns tdcs txd, tx_en setup time to tx_clk 100mbps 15 - 18 ns  
 

 
   
 
  !  mii rx timing  

       ac characteristics parameter description notes min typ max units tdcs valid data to rx_clk (setup) 10mbps 5 - - ns tcdh rx_clk to valid data (hold) 10mbps 5 - - ns tdcs valid data to rx_clk (setup) 100mbps 5 - - ns tcdh rx_clk to valid data (hold) 100mbps 5 - - ns
 

 
   
 
  ! package description  figure 1: W3100A lqfp package specifications   
 

 
   
 
  ! appendix a. electrical specifications absolute maximum ratings symbol parameter rating unit v dd dc supply voltage -0.3 to 3.8 v v in dc input voltage -0.3 to 5.5(5v-tolerant) v i in dc input current 10 ma t stg storage temperature -40 to 125 c *comment : stressing the device beyond the ?absolute maximum ratings? may cause permanent damage. recommended operating conditions parameter rating unit commercial temperature range 0 to 70 c industrial temperature range -10 to 70 c d.c. operating characteristics v dd = 3.3 0.3v, v ext = 5 0.25v symbol parameter condition min typ max unit v ih high level input voltage 2.0 v v il low level input voltage 0.8 v v in =v dd -10 10 i ih high level input current v in =v dd (external pull-down) 10 30 60 a v in =v ss -10 10 i il low level input current v in =v ss (external pull-up) -60 -30 -10 a v oh high level output voltage i oh =-4ma 2.4 v v ol low level output voltage i ol =4ma 0.4 v i oz tri-state output leakage current v out =v ss or v ext -10 10 a v dd =3.6v, v o =v dd 55 i os output short circuit current v dd =3.6v,v o =v ss -55 ma c in input capacitance note1 any input and bi- directional buffers 4 pf c out output capacitance note1 any output buffer 4 pf *notes: this value excludes package parasitics.
 

 
   
 
  ! power dissipation symbol condition power consumption unit minimum 5 typical 9 p 10base maximum 11 minimum 10 typical 30 p 100base maximum 35 ma 


▲Up To Search▲   

 
Price & Availability of W3100A

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X